const http = require('http');

console.log('=== 模拟前端完整访问流程 ===');

// 1. 模拟前端设备数据
const deviceData = [
  {
    '设备表及材料表中的实体对象名称': '冷却喷淋装置',
    '分类码': 'L3-19-01-07-00-000',
    '对应的对象分类标准中的中文名称': '冷却水喷淋装置',
    '技术规格书': '表 C.494'
  }
];

// 2. 模拟用户选择的设备
const deviceName = '冷却喷淋装置';
const device = deviceData.find((d) => d['设备表及材料表中的实体对象名称'] === deviceName);

console.log('1. 用户选择的设备:', deviceName);
console.log('2. 前端获取的设备信息:', JSON.stringify(device, null, 2));

if (device) {
  const deviceTypeCode = device['分类码'];
  console.log('3. 前端提取的设备类型代码:', deviceTypeCode);
  
  // 3. 模拟前端调用API
  console.log('4. 前端调用API: /api/device-instances?deviceTypeCode=' + deviceTypeCode);
  
  const req = http.request({
    hostname: 'localhost',
    port: 3000,
    path: '/api/device-instances?deviceTypeCode=' + encodeURIComponent(deviceTypeCode),
    method: 'GET'
  }, (res) => {
    let data = '';
    res.on('data', (chunk) => { data += chunk; });
    res.on('end', () => {
      console.log('5. API响应状态:', res.statusCode);
      
      try {
        const result = JSON.parse(data);
        console.log('6. API成功返回:', result.success);
        
        if (result.success && result.data && result.data.length > 0) {
          console.log('7. 实例数量:', result.data.length);
          
          // 模拟前端选择第一个实例（当前逻辑）
          const instance = result.data[0];
          console.log('8. 前端选择的实例:', {
            id: instance.id,
            instance_number: instance.instance_number,
            object_number: instance.object_number,
            object_description: instance.object_description
          });
          
          // 模拟前端处理各种参数类型
          ['naming', 'position', 'base_params'].forEach(type => {
            const paramTypeMap = {
              'naming': 'naming',
              'position': 'position', 
              'base_params': 'base_params'
            };
            
            const paramData = instance.parameters[paramTypeMap[type]] || {};
            const data = Object.entries(paramData).map(([key, value], index) => ({
              id: index + 1,
              parameter_name: key,
              parameter_value: value || '',
              data_type: typeof value === 'number' ? '数值型' : '文本型',
              is_required: false,
              example_description: '',
              measurement_class: '',
              measurement_unit: '',
              data_source: 'E'
            }));
            
            console.log(`\\n9. ${type}参数处理结果 (${data.length}条):`);
            data.forEach(param => {
              console.log(`   - ${param.parameter_name}: ${param.parameter_value}`);
            });
          });
          
        } else {
          console.log('7. 未找到实例数据');
        }
      } catch (e) {
        console.log('解析API响应失败:', e.message);
        console.log('原始响应:', data.substring(0, 500));
      }
    });
  });
  
  req.on('error', (e) => {
    console.error('API请求失败:', e.message);
  });
  
  req.end();
}